/**
 * This is the package for all pacman objects, both moving and non-moving
 */
package pacman_objects;

/**
 * This interface is for all moving objects.
 * 
 * @author Casey_Comisky
 * @date July 12, 2011
 */
public interface Moving_Object extends Objects{
	
	/**
	 * This function will move an object, capable of moving, up.
	 * @return A boolean representing whether the action was be performed.
	 */
	public boolean moveUp();
	
	/**
	 * This function will move an object, capable of moving, down.
	 * @return A boolean representing whether the action was be performed.
	 */
	public boolean moveDown();
	
	/**
	 * This function will move an object, capable of moving, left.
	 * @return A boolean representing whether the action was be performed.
	 */
	public boolean moveLeft();
	
	/**
	 * This function will move an object, capable of moving, right.
	 * @return A boolean representing whether the action could be performed.
	 */
	public boolean moveRight();
	
	/**
	 * This function will see if an object, capable of moving, can move up.
	 * @return A boolean representing whether the action could be performed.
	 */
	public boolean canMoveUp();
	
	/**
	 * This function will see if an object, capable of moving, can move down.
	 * @return A boolean representing whether the action could be performed.
	 */
	public boolean canMoveDown();
	
	/**
	 * This function will see if an object, capable of moving, can move left.
	 * @return A boolean representing whether the action could be performed.
	 */
	public boolean canMoveLeft();
	
	/**
	 * This function will see if an object, capable of moving, can move right.
	 * @return A boolean representing whether the action could be performed.
	 */
	public abstract boolean canMoveRight();
	
}
